package org.lala.lex.configs.parser
{
    ;

    public class LexLexer
    {
        protected var _transTable:Array;
        protected var _finalTable:Object;
        protected var _inputTable:Array;
        protected var _initialTable:Object;
        protected const DEADSTATE:uint = uint.MAX_VALUE;
        
        protected var _start:uint;
        protected var _oldStart:uint;
        protected var _tokenName:String;
        protected var _yytext:*;
        protected var _yy:Object;
        protected var _ended:Boolean;
        protected var _initialInput:Number;
        protected var _initialState:String;
        
        protected var _line:uint;
        protected var _col:uint;
        protected var _advanced:Boolean;
        
        protected var _source:String;
        ;

        public function LexLexer()
        {
            _transTable = 
[[false,[4294967295,13,12,11,10,9,8,7,6,5,4,3,2,1],[[0,42,0],[43,43,1],[44,44,2],[45,45,3],[46,46,4],[47,47,5],[48,48,6],[49,49,7],[50,50,8],[51,51,9],[52,52,10],[53,53,11],[54,54,12],[55,55,13]]],[false,[4294967295,15,23,22,14,21,20,19,18,17,16],[[0,9,0],[10,10,1],[11,11,2],[12,14,3],[15,15,4],[16,16,5],[17,17,6],[18,18,7],[19,19,8],[20,20,9],[21,42,10],[43,55,0]]],[false,[4294967295,15,22,24,21,20,16],[[0,9,0],[10,10,1],[11,11,0],[12,14,2],[15,15,3],[16,16,4],[17,17,5],[18,20,0],[21,42,6],[43,55,0]]],[false,[4294967295,27,26,28,25,20],[[0,11,0],[12,12,1],[13,13,2],[14,14,3],[15,15,4],[16,16,0],[17,17,5],[18,55,0]]],[false,[4294967295,30,27,26,28,29,20],[[0,8,0],[9,9,1],[10,11,0],[12,12,2],[13,13,3],[14,14,4],[15,15,5],[16,16,0],[17,17,6],[18,20,0],[21,42,1],[43,55,0]]],[false,[31,36,33,39,32,37,26,38,35,34,4294967295],[[0,5,0],[6,6,1],[7,7,2],[8,8,3],[9,9,0],[10,10,4],[11,11,0],[12,12,5],[13,13,6],[14,14,7],[15,15,0],[16,16,8],[17,17,9],[18,42,0],[43,55,10]]],[false,[4294967295,41,40,30,26,20],[[0,3,0],[4,4,1],[5,5,2],[6,8,0],[9,9,3],[10,12,0],[13,13,4],[14,16,0],[17,17,5],[18,20,0],[21,42,3],[43,55,0]]],[false,[4294967295,37,42,38,20],[[0,11,0],[12,12,1],[13,13,2],[14,14,3],[15,16,0],[17,17,4],[18,55,0]]],[false,[43,45,48,44,4294967295,47,46],[[0,6,0],[7,7,1],[8,8,2],[9,9,0],[10,10,3],[11,11,0],[12,14,4],[15,15,0],[16,16,5],[17,17,6],[18,42,0],[43,55,4]]],[false,[4294967295,37,49,38,20],[[0,11,0],[12,12,1],[13,13,2],[14,14,3],[15,16,0],[17,17,4],[18,55,0]]],[false,[51,37,38,50,53,52,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,2],[15,15,3],[16,16,0],[17,17,4],[18,19,0],[20,20,5],[21,42,0],[43,55,6]]],[false,[54,56,57,55,4294967295],[[0,2,0],[3,3,1],[4,16,0],[17,17,2],[18,19,0],[20,20,3],[21,42,0],[43,55,4]]],[false,[59,58,60,4294967295],[[0,14,0],[15,15,1],[16,16,0],[17,17,2],[18,42,0],[43,55,3]]],[false,[62,61,63,4294967295],[[0,14,0],[15,15,1],[16,16,0],[17,17,2],[18,42,0],[43,55,3]]],[false,[4294967295,64,73,72,71,70,69,68,67,66,65],[[0,14,0],[15,15,1],[16,19,0],[20,20,2],[21,34,0],[35,35,3],[36,36,4],[37,37,5],[38,38,6],[39,39,7],[40,40,8],[41,41,9],[42,42,10],[43,55,0]]],[false,[74,4294967295],[[0,9,0],[10,10,1],[11,42,0],[43,55,1]]],[false,[4294967295,16],[[0,1,0],[2,2,1],[3,4,0],[5,5,1],[6,8,0],[9,9,1],[10,20,0],[21,42,1],[43,55,0]]],[true],[true],[true],[false,[4294967295,75],[[0,4,0],[5,5,1],[6,55,0]]],[false,[76,4294967295],[[0,15,0],[16,16,1],[17,42,0],[43,55,1]]],[false,[4294967295,22],[[0,11,0],[12,14,1],[15,55,0]]],[true],[false,[4294967295,64,73,72,77,70,69,68,67,66,65],[[0,14,0],[15,15,1],[16,19,0],[20,20,2],[21,34,0],[35,35,3],[36,36,4],[37,37,5],[38,38,6],[39,39,7],[40,40,8],[41,41,9],[42,42,10],[43,55,0]]],[false,[4294967295,78,85,81,84,83,82,80,79],[[0,14,0],[15,15,1],[16,19,0],[20,20,2],[21,33,0],[34,34,3],[35,35,4],[36,36,5],[37,37,6],[38,39,0],[40,40,7],[41,41,8],[42,55,0]]],[false,[4294967295,26],[[0,12,0],[13,13,1],[14,55,0]]],[false,[4294967295,28],[[0,13,0],[14,14,1],[15,55,0]]],[true],[false,[4294967295,85],[[0,19,0],[20,20,1],[21,55,0]]],[false,[4294967295,30],[[0,1,0],[2,2,1],[3,4,0],[5,5,1],[6,8,0],[9,9,1],[10,20,0],[21,42,1],[43,55,0]]],[false,[31,33,39,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[32,87,89,86,88,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,9,0],[10,10,3],[11,11,0],[12,14,4],[15,42,0],[43,55,5]]],[false,[31,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[31,91,33,39,4294967295,90],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,41,0],[42,42,5],[43,55,4]]],[false,[35,92,94,93,86,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,15,0],[16,16,4],[17,42,0],[43,55,5]]],[false,[4294967295,95],[[0,5,0],[6,6,1],[7,55,0]]],[false,[4294967295,38],[[0,13,0],[14,14,1],[15,55,0]]],[true],[false,[39,31,96,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[true],[true],[false,[4294967295,42],[[0,12,0],[13,13,1],[14,55,0]]],[false,[43,45,48,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[44,98,99,97,88,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,9,0],[10,10,3],[11,11,0],[12,14,4],[15,42,0],[43,55,5]]],[false,[43,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[43,100,45,48,4294967295],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,42,0],[43,55,4]]],[false,[47,101,102,93,97,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,15,0],[16,16,4],[17,42,0],[43,55,5]]],[false,[48,43,103,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[false,[4294967295,49],[[0,12,0],[13,13,1],[14,55,0]]],[false,[51,4294967295,104],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,19,0],[20,20,2],[21,42,0],[43,55,1]]],[false,[51,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[52,105,4294967295],[[0,2,0],[3,3,1],[4,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,2]]],[false,[51,106,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,2]]],[false,[54,4294967295],[[0,2,0],[3,3,1],[4,19,0],[20,20,1],[21,42,0],[43,55,1]]],[true],[true],[false,[54,4294967295,107],[[0,2,0],[3,3,1],[4,4,0],[5,5,2],[6,19,0],[20,20,1],[21,42,0],[43,55,1]]],[false,[59,108,58,4294967295],[[0,2,0],[3,3,1],[4,14,0],[15,15,2],[16,42,0],[43,55,3]]],[false,[59,58,4294967295],[[0,14,0],[15,15,1],[16,42,0],[43,55,2]]],[false,[59,109,58,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,42,0],[43,55,3]]],[false,[62,110,61,4294967295],[[0,2,0],[3,3,1],[4,14,0],[15,15,2],[16,42,0],[43,55,3]]],[false,[62,61,4294967295],[[0,14,0],[15,15,1],[16,42,0],[43,55,2]]],[false,[62,111,61,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,42,0],[43,55,3]]],[true],[false,[4294967295,112],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,113],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,115,114],[[0,31,0],[32,32,1],[33,37,0],[38,38,2],[39,55,0]]],[false,[4294967295,116],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,117],[[0,30,0],[31,31,1],[32,55,0]]],[false,[4294967295,118],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,119,120],[[0,28,0],[29,29,1],[30,38,0],[39,39,2],[40,55,0]]],[false,[4294967295,121],[[0,41,0],[42,42,1],[43,55,0]]],[true],[false,[74,122,4294967295],[[0,9,0],[10,10,1],[11,42,0],[43,55,2]]],[false,[75,123,4294967295],[[0,4,0],[5,5,1],[6,42,0],[43,55,2]]],[false,[76,122,4294967295],[[0,15,0],[16,16,1],[17,42,0],[43,55,2]]],[false,[4294967295,119],[[0,28,0],[29,29,1],[30,55,0]]],[true],[false,[4294967295,124],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,126,125],[[0,31,0],[32,32,1],[33,37,0],[38,38,2],[39,55,0]]],[true],[true],[false,[4294967295,127],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,128],[[0,41,0],[42,42,1],[43,55,0]]],[true],[false,[31,33,39,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[32,88,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[88,130,129,4294967295],[[0,6,0],[7,7,1],[8,9,0],[10,10,2],[11,42,0],[43,55,3]]],[false,[89,32,132,131,88,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,9,0],[10,10,3],[11,11,0],[12,12,4],[13,13,0],[14,14,4],[15,42,0],[43,55,5]]],[false,[31,33,39,4294967295,133],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,32,0],[33,33,4],[34,42,0],[43,55,3]]],[false,[91,135,134,136,75,4294967295],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,42,0],[43,55,5]]],[false,[35,93,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[93,137,129,4294967295],[[0,6,0],[7,7,1],[8,15,0],[16,16,2],[17,42,0],[43,55,3]]],[false,[94,35,138,93,131,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,15,0],[16,16,4],[17,42,0],[43,55,5]]],[false,[4294967295,139],[[0,27,0],[28,28,1],[29,55,0]]],[false,[39,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[43,45,48,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[44,88,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[99,44,141,140,88,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,9,0],[10,10,3],[11,11,0],[12,12,4],[13,13,0],[14,14,4],[15,42,0],[43,55,5]]],[false,[100,143,142,144,75,4294967295],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,42,0],[43,55,5]]],[false,[47,93,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[102,47,145,93,140,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,15,0],[16,16,4],[17,42,0],[43,55,5]]],[false,[48,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[104,147,149,146,148,4294967295],[[0,9,0],[10,10,1],[11,11,0],[12,12,2],[13,13,0],[14,14,2],[15,15,3],[16,16,4],[17,42,0],[43,55,5]]],[false,[51,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[106,150,75,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,3]]],[false,[107,75,151,4294967295],[[0,2,0],[3,3,1],[4,4,0],[5,5,2],[6,19,0],[20,20,1],[21,42,0],[43,55,3]]],[true],[false,[109,153,152,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,42,0],[43,55,3]]],[true],[false,[111,155,154,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,42,0],[43,55,3]]],[false,[4294967295,157,156],[[0,33,0],[34,34,1],[35,40,0],[41,41,2],[42,55,0]]],[false,[4294967295,158],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,159],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,160],[[0,35,0],[36,36,1],[37,55,0]]],[false,[4294967295,161],[[0,26,0],[27,27,1],[28,55,0]]],[false,[4294967295,162],[[0,37,0],[38,38,1],[39,55,0]]],[false,[4294967295,163],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,164],[[0,34,0],[35,35,1],[36,55,0]]],[false,[4294967295,165],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,166],[[0,28,0],[29,29,1],[30,55,0]]],[true],[false,[75,123,167,4294967295],[[0,4,0],[5,5,1],[6,16,0],[17,17,2],[18,42,0],[43,55,3]]],[false,[4294967295,168],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,169],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,170],[[0,35,0],[36,36,1],[37,55,0]]],[false,[4294967295,171],[[0,34,0],[35,35,1],[36,55,0]]],[false,[4294967295,172],[[0,28,0],[29,29,1],[30,55,0]]],[true],[false,[88,4294967295],[[0,42,0],[43,55,1]]],[false,[39,31,96,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[false,[89,88,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[31,33,39,4294967295,173],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,33,0],[34,34,4],[35,42,0],[43,55,3]]],[false,[91,135,75,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,3]]],[false,[91,135,134,136,75,174,4294967295],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,16,0],[17,17,5],[18,42,0],[43,55,6]]],[false,[136,91,176,175,75,4294967295],[[0,0,0],[1,1,1],[2,4,0],[5,5,2],[6,6,0],[7,7,3],[8,11,0],[12,12,4],[13,13,0],[14,14,4],[15,42,0],[43,55,5]]],[false,[93,4294967295],[[0,42,0],[43,55,1]]],[false,[94,93,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[4294967295,177],[[0,25,0],[26,26,1],[27,55,0]]],[false,[48,43,103,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[false,[99,88,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[100,143,75,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,3]]],[false,[100,143,142,144,75,178,4294967295],[[0,4,0],[5,5,1],[6,6,0],[7,7,2],[8,8,3],[9,11,0],[12,14,4],[15,16,0],[17,17,5],[18,42,0],[43,55,6]]],[false,[144,100,180,179,75,4294967295],[[0,0,0],[1,1,1],[2,4,0],[5,5,2],[6,6,0],[7,7,3],[8,11,0],[12,12,4],[13,13,0],[14,14,4],[15,42,0],[43,55,5]]],[false,[102,93,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[104,181,147,149,146,148,4294967295],[[0,2,0],[3,3,1],[4,9,0],[10,10,2],[11,11,0],[12,12,3],[13,13,0],[14,14,3],[15,15,4],[16,16,5],[17,42,0],[43,55,6]]],[false,[147,182,104,183,4294967295],[[0,6,0],[7,7,1],[8,9,0],[10,10,2],[11,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,4]]],[false,[148,184,185,104,4294967295],[[0,6,0],[7,7,1],[8,11,0],[12,12,2],[13,13,0],[14,14,2],[15,15,0],[16,16,3],[17,42,0],[43,55,4]]],[false,[149,183,186,185,4294967295],[[0,9,0],[10,10,1],[11,14,0],[15,15,2],[16,16,3],[17,42,0],[43,55,4]]],[false,[106,150,75,187,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,16,0],[17,17,3],[18,42,0],[43,55,4]]],[false,[107,75,151,54,4294967295],[[0,2,0],[3,3,1],[4,4,0],[5,5,2],[6,16,0],[17,17,3],[18,19,0],[20,20,1],[21,42,0],[43,55,4]]],[false,[109,188,153,152,4294967295],[[0,2,0],[3,3,1],[4,4,0],[5,5,2],[6,14,0],[15,15,3],[16,42,0],[43,55,4]]],[false,[109,153,152,189,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,16,0],[17,17,3],[18,42,0],[43,55,4]]],[false,[111,190,155,154,4294967295],[[0,2,0],[3,3,1],[4,4,0],[5,5,2],[6,14,0],[15,15,3],[16,42,0],[43,55,4]]],[false,[111,155,154,191,4294967295],[[0,4,0],[5,5,1],[6,14,0],[15,15,2],[16,16,0],[17,17,3],[18,42,0],[43,55,4]]],[false,[4294967295,192],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,193],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,194],[[0,41,0],[42,42,1],[43,55,0]]],[false,[4294967295,195],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,196],[[0,30,0],[31,31,1],[32,55,0]]],[false,[4294967295,197],[[0,24,0],[25,25,1],[26,55,0]]],[false,[4294967295,198],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,199],[[0,38,0],[39,39,1],[40,55,0]]],[false,[4294967295,200],[[0,23,0],[24,24,1],[25,55,0]]],[false,[4294967295,201],[[0,34,0],[35,35,1],[36,55,0]]],[false,[4294967295,202],[[0,36,0],[37,37,1],[38,55,0]]],[true],[false,[4294967295,203],[[0,41,0],[42,42,1],[43,55,0]]],[false,[4294967295,204],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,205],[[0,30,0],[31,31,1],[32,55,0]]],[false,[4294967295,206],[[0,23,0],[24,24,1],[25,55,0]]],[false,[4294967295,207],[[0,36,0],[37,37,1],[38,55,0]]],[false,[31,33,39,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[31,33,39,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[136,176,75,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,3]]],[false,[136,91,176,175,75,208,4294967295],[[0,0,0],[1,1,1],[2,4,0],[5,5,2],[6,6,0],[7,7,3],[8,11,0],[12,12,4],[13,13,0],[14,14,4],[15,16,0],[17,17,5],[18,42,0],[43,55,6]]],[false,[4294967295,209],[[0,22,0],[23,23,1],[24,55,0]]],[false,[43,45,48,4294967295],[[0,6,0],[7,7,1],[8,8,2],[9,11,0],[12,14,3],[15,42,0],[43,55,3]]],[false,[144,180,75,4294967295],[[0,4,0],[5,5,1],[6,11,0],[12,12,2],[13,13,0],[14,14,2],[15,42,0],[43,55,3]]],[false,[144,100,180,179,75,210,4294967295],[[0,0,0],[1,1,1],[2,4,0],[5,5,2],[6,6,0],[7,7,3],[8,11,0],[12,12,4],[13,13,0],[14,14,4],[15,16,0],[17,17,5],[18,42,0],[43,55,6]]],[false,[51,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[147,183,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[183,211,149,4294967295],[[0,6,0],[7,7,1],[8,9,0],[10,10,2],[11,42,0],[43,55,3]]],[false,[148,185,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,2]]],[false,[185,212,149,4294967295],[[0,6,0],[7,7,1],[8,15,0],[16,16,2],[17,42,0],[43,55,3]]],[false,[149,213,183,186,185,4294967295],[[0,2,0],[3,3,1],[4,9,0],[10,10,2],[11,14,0],[15,15,3],[16,16,4],[17,42,0],[43,55,5]]],[false,[51,4294967295],[[0,11,0],[12,12,1],[13,13,0],[14,14,1],[15,42,0],[43,55,1]]],[false,[75,123,4294967295],[[0,4,0],[5,5,1],[6,42,0],[43,55,2]]],[false,[59,58,4294967295],[[0,14,0],[15,15,1],[16,42,0],[43,55,2]]],[false,[75,123,4294967295],[[0,4,0],[5,5,1],[6,42,0],[43,55,2]]],[false,[62,61,4294967295],[[0,14,0],[15,15,1],[16,42,0],[43,55,2]]],[true],[false,[4294967295,214],[[0,38,0],[39,39,1],[40,55,0]]],[false,[4294967295,215],[[0,21,0],[22,22,1],[23,55,0]]],[false,[4294967295,216],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,217],[[0,38,0],[39,39,1],[40,55,0]]],[false,[4294967295,218],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,219],[[0,36,0],[37,37,1],[38,55,0]]],[false,[4294967295,220],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,221],[[0,28,0],[29,29,1],[30,55,0]]],[true],[false,[4294967295,222],[[0,36,0],[37,37,1],[38,55,0]]],[false,[4294967295,223],[[0,21,0],[22,22,1],[23,55,0]]],[false,[4294967295,224],[[0,39,0],[40,40,1],[41,55,0]]],[false,[4294967295,225],[[0,38,0],[39,39,1],[40,55,0]]],[false,[4294967295,226],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,227],[[0,36,0],[37,37,1],[38,55,0]]],[false,[39,31,96,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[false,[4294967295,228],[[0,3,0],[4,4,1],[5,55,0]]],[false,[48,43,103,4294967295],[[0,0,0],[1,1,1],[2,6,0],[7,7,2],[8,11,0],[12,12,3],[13,13,0],[14,14,3],[15,42,0],[43,55,3]]],[false,[183,4294967295],[[0,42,0],[43,55,1]]],[false,[185,4294967295],[[0,42,0],[43,55,1]]],[true],[false,[4294967295,229],[[0,8,0],[9,9,1],[10,55,0]]],[true],[false,[4294967295,230],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,231],[[0,29,0],[30,30,1],[31,55,0]]],[true],[false,[4294967295,232],[[0,36,0],[37,37,1],[38,55,0]]],[true],[false,[4294967295,233],[[0,26,0],[27,27,1],[28,55,0]]],[true],[true],[false,[4294967295,234],[[0,28,0],[29,29,1],[30,55,0]]],[false,[4294967295,235],[[0,29,0],[30,30,1],[31,55,0]]],[false,[4294967295,236],[[0,26,0],[27,27,1],[28,55,0]]],[true],[false,[4294967295,237],[[0,3,0],[4,4,1],[5,55,0]]],[false,[4294967295,238],[[0,37,0],[38,38,1],[39,55,0]]],[false,[4294967295,239],[[0,41,0],[42,42,1],[43,55,0]]],[true],[false,[4294967295,240],[[0,30,0],[31,31,1],[32,55,0]]],[false,[4294967295,241],[[0,32,0],[33,33,1],[34,55,0]]],[false,[4294967295,242],[[0,41,0],[42,42,1],[43,55,0]]],[true],[false,[4294967295,243],[[0,32,0],[33,33,1],[34,55,0]]],[true],[false,[4294967295,244],[[0,28,0],[29,29,1],[30,55,0]]],[true],[false,[4294967295,245],[[0,34,0],[35,35,1],[36,55,0]]],[true],[true],[true],[false,[4294967295,246],[[0,31,0],[32,32,1],[33,55,0]]],[true],[false,[4294967295,247],[[0,32,0],[33,33,1],[34,55,0]]],[true]]
;_finalTable = 
{218:1,129:44,150:52,131:44,133:45,135:45,140:44,143:46,16:13,17:19,18:18,19:16,148:52,22:24,23:17,146:52,147:52,28:37,157:23,30:32,31:45,32:45,34:45,35:45,36:41,37:49,38:49,167:38,151:22,41:42,42:47,43:46,44:46,173:40,174:38,47:46,40:35,49:48,50:52,51:52,52:52,181:51,182:52,55:20,184:52,57:22,178:38,187:38,188:34,189:38,190:11,191:38,64:12,27:37,53:52,54:22,192:0,201:15,26:36,78:39,208:38,81:26,82:25,56:21,46:46,85:33,86:44,215:8,210:38,91:45,220:3,213:51,222:4,223:31,97:44,90:45,227:28,73:10,231:6,104:52,105:50,106:52,235:29,108:34,237:43,110:11,239:7,241:5,242:30,107:22,245:2,247:9,122:14,243:27,100:46}
;_inputTable = 
[[0,8,0],[9,9,13],[10,10,14],[11,12,0],[13,13,12],[14,31,0],[32,32,13],[33,33,0],[34,34,10],[35,36,0],[37,37,15],[38,38,0],[39,39,16],[40,41,0],[42,42,5],[43,44,0],[45,46,2],[47,47,17],[48,57,2],[58,58,18],[59,59,11],[60,60,6],[61,61,0],[62,62,4],[63,64,0],[65,68,21],[69,69,28],[70,70,23],[71,78,21],[79,79,26],[80,90,21],[91,91,8],[92,92,7],[93,93,1],[94,94,0],[95,95,9],[96,96,0],[97,97,29],[98,98,21],[99,99,35],[100,100,22],[101,101,33],[102,102,41],[103,103,27],[104,104,25],[105,105,40],[106,106,21],[107,107,24],[108,108,42],[109,109,32],[110,110,38],[111,111,31],[112,112,36],[113,113,21],[114,114,39],[115,115,37],[116,116,30],[117,119,21],[120,120,34],[121,122,21],[123,123,20],[124,124,19],[125,125,3],[126,65535,0]]
;_initialTable = 
{"INITIAL":12,"RULE_COND":8,"RULE_TRIAL":5,"RULE_PATTERN":6,"GRAMMAR_CODE":1,"DEC_COND":10,"GRAMMAR_ACTION":3,"DEC_CODE":2,"DEC":11,"GRAMMAR_RULE":13,"RULE":9,"RULE_INDENT":4,"RULE_SPACE":7}
;
        }
        
        public function yyrestart(src:String=null):void
        {
            if(src != null)
            {
                _source = src;
            }
            _ended = false;
            _start = 0;
            _oldStart = 0;
            _line = 1;
            _col = 0;
            _advanced = true;
            _tokenName = null;
            _yy = {};
            initialState = "INITIAL";
            ;

        }
        
        public function set source(src:String):void
        {
            _source = src;
            yyrestart();
        }
        
        public function get token():String
        {
            if(_advanced)
            {
                _tokenName = next();
                _advanced = false;
            }
            return _tokenName;
        }
        
        public function advance():void
        {
            _advanced = true;
        }
        
        public function get startIdx():uint
        {
            return _oldStart;
        }
        
        public function get endIdx():uint
        {
            return _start;
        }
        
        public function get position():Array
        {
            return [_line,_col];
        }
        
        public function get positionInfo():String
        {
            return token + '@row:' + position.join('col:');   
        }
        
        public function get yytext():*
        {
            return _yytext;
        }
        
        public function get yyleng():uint
        {
            return endIdx - startIdx;
        }
        
        public function set yytext(value:*):void
        {
            _yytext = value;
        }
        
        public function get yy():Object
        {
            return _yy;
        }

        public function get tokenName():String
        {
            return _tokenName;
        }
        
        protected function next():String
        {
            var _findex:*;
            var _nextState:*;
            var _char:Number;
            var _begin:uint;
            var _next:uint;
            var _ochar:uint;
            var _curState:uint;
            var _lastFinalState:uint;
            var _lastFinalPosition:uint;
            
            while(true)
            {
                _findex = null;
                _nextState = null;
                _char = 0;
                _begin = _start;
                _next = _start;
                _ochar = uint.MAX_VALUE;
                _lastFinalState = DEADSTATE;
                _lastFinalPosition = _start;
                _curState = _transTable[0][1][_initialInput];
                while(true)
                {
                    _char = _source.charCodeAt(_next);
                    /** 计算行,列位置 **/
                    if(_ochar != uint.MAX_VALUE)
                    {
                        if(_char == 0x0d)//\r
                        {
                            _col = 0;
                            _line ++;
                        }
                        else if(_char == 0x0a)//\n
                        {
                            if(_ochar != 0x0d)// != \r
                            {
                                _col = 0;
                                _line ++;
                            }
                        }
                        else
                        {
                            _col ++;
                        }
                    }
                    _ochar = _char;
                    /** 计算行,列位置--结束 **/
                    _nextState = trans(_curState, _char);
                    if(_nextState == DEADSTATE)
                    {
                        if(_begin == _lastFinalPosition)
                        {
                            if(_start == _source.length)
                            {
                                if(_ended == false)
                                {
                                    _ended = true;
                                    return "<$>";
                                }
                                else
                                {
                                    throw new Error("已经到达末尾.");
                                }                    
                            }
                            throw new Error("意外的字符,line:" + position.join(",col:") + 'of ' + _source.substr(_begin,20));
                        }
                        else
                        {
                            _findex = _finalTable[_lastFinalState];
                            _start = _lastFinalPosition;
                            _oldStart = _begin;
                            _yytext = _source.substring(startIdx, endIdx);
                            switch(_findex)
{
case 0x0:
    return 'grammar_dec_left';
    break;
case 0x1:
    return 'grammar_dec_right';
    break;
case 0x2:
    return 'grammar_dec_nonassoc';
    break;
case 0x3:
    return 'grammar_dec_start';
    break;
case 0x4:
    return 'grammar_dec_class';
    break;
case 0x5:
    return 'grammar_dec_package';
    break;
case 0x6:
    return 'grammar_dec_import';
    break;
case 0x7:
    return 'grammar_dec_initial';
    break;
case 0x8:
    return 'grammar_dec_field';
    break;
case 0x9:
    return 'grammar_dec_lexer_name';
    break;
case 0xA:
    this.begin('GRAMMAR_CODE');
    break;
case 0xB:
    
                            this.begin('INITIAL'); 
                            yytext = yytext.substr(0, yytext.length - 2); 
                            return 'grammar_code'
                        ;
    break;
case 0xC:
    this.begin('GRAMMAR_RULE'); return 'grammar_rule_begin';
    break;
case 0xD:
    return 'grammar_id';
    break;
case 0xE:
    yytext = yytext.substr(1, yyleng - 2); return 'grammar_string';
    break;
case 0xF:
    return 'grammar_dec_prec';
    break;
case 0x10:
    return ':';
    break;
case 0x11:
    return ';';
    break;
case 0x12:
    return '|';
    break;
case 0x13:
    yy.depth = 0; this.begin('GRAMMAR_ACTION'); return '{';
    break;
case 0x14:
    yy.depth ++; return '{';
    break;
case 0x15:
    yy.depth == 0 ? this.begin('GRAMMAR_RULE') : yy.depth --; return '}';
    break;
case 0x16:
    return 'grammar_action_body';
    break;
case 0x17:
    this.begin('DEC'); return 'lex_begin';
    break;
case 0x19:
    this.begin('DEC_COND'); return 'dec_inc';
    break;
case 0x1A:
    this.begin('DEC_COND'); return 'dec_exc';
    break;
case 0x1B:
    this.begin('DEC_COND'); return 'dec_package';
    break;
case 0x1C:
    this.begin('DEC_COND'); return 'dec_class';
    break;
case 0x1D:
    this.begin('DEC_COND'); return 'dec_import';
    break;
case 0x1E:
    this.begin('DEC_COND'); return 'dec_initial';
    break;
case 0x1F:
    this.begin('DEC_COND'); return 'dec_field';
    break;
case 0x20:
    return 'name';
    break;
case 0x21:
    this.begin('DEC_CODE');
    break;
case 0x22:
    this.begin('DEC'); yytext = yytext.substr(0, yytext.length - 2); return 'lex_code';
    break;
case 0x23:
    return 'name';
    break;
case 0x25:
    this.begin('DEC');
    break;
case 0x27:
    this.begin('RULE'); return 'rule_start'        ;
    break;
case 0x28:
    this.begin('INITIAL'); return 'lex_end';
    break;
case 0x29:
    this.begin('RULE_COND'); return '<';
    break;
case 0x2A:
    this.begin('RULE_PATTERN'); return '>';
    break;
case 0x2B:
    this.begin('RULE_SPACE'); return 'pattern';
    break;
case 0x2C:
    
                                        this.begin('RULE_SPACE'); 
                                        yytext = yytext.substr(1, yytext.length - 2); 
                                        yytext = yytext.replace(/\\(.)/g,"$1"); 
                                        yytext = yytext.replace(/[\\\*\|\?\+\[\]\(\)\^\.\-\{\}]/g,"\\$&"); 
                                        return 'pattern'
                                    ;
    break;
case 0x2D:
    
                        /** begin without < **/
                        this.begin('RULE_SPACE'); 
                        return 'pattern'
                    ;
    break;
case 0x2E:
    this.begin('RULE_SPACE'); return 'pattern';
    break;
case 0x2F:
    this.begin('RULE_INDENT');
    break;
case 0x31:
    this.begin('RULE');
    break;
case 0x32:
    
                        this.begin('RULE_TRIAL'); 
                        yytext = yytext.substr(1, yytext.length - 2); 
                        return 'action'
                    ;
    break;
case 0x33:
    
                        /* support "%}" in literal string, but in comment is not support yet */
                        this.begin('RULE_TRIAL'); 
                        yytext = yytext.substr(2, yytext.length - 4); 
                        return 'action'
                    ;
    break;
case 0x34:
    this.begin('RULE_TRIAL'); return 'action';
    break;
}
                            break;
                        }
                    }
                    else
                    {
                        _findex = _finalTable[_nextState];
                        if(_findex != null)
                        {
                            _lastFinalState = _nextState;
                            _lastFinalPosition = _next + 1;
                        }
                        _next += 1;
                        _curState = _nextState;
                    }
                }
            }
            return "";//这里的值会影响返回值!!
        }
        protected function trans(curState:uint,char:Number):uint
        {
            if(isNaN(char))
                return DEADSTATE;
            if(char < _inputTable[0][0] || char > _inputTable[_inputTable.length - 1][1])
                throw new Error("输入超出有效范围,line:" + position.join(",col:"));
            if(_transTable[curState][0] == true)
                return DEADSTATE;

            var ipt:int = find(char,_inputTable);
            var ipt2:int = find(ipt, _transTable[curState][2]);
            return _transTable[curState][1][ipt2];
        }
        
        protected function find(code:uint,seg:Array):uint
        {
            var min:uint;
            var max:uint;
            var mid:uint;
            min = 0;
            max = seg.length - 1;
            while(true)
            {
                mid = (min + max) >>> 1;
                if(seg[mid][0] <= code && seg[mid][1] >= code)
                {
                    return seg[mid][2];
                }
                else if(seg[mid][0] > code)
                {
                    max = mid - 1;
                }
                else
                {
                    min = mid + 1;
                }
            }
            return 0;
        }
        
        protected function begin(state:String=null):void
        {
            if(state == null)
            {
                initialState = "INITIAL";
                return;
            }
            initialState = state;
        }
        
        protected function get initialState():String
        {
            return _initialState;
        }

        protected function set initialState(value:String):void
        {
            if(_initialTable[value] === undefined)
            {
                throw new Error("未定义的起始状态:" + value);
            }
            _initialState = value;
            _initialInput = _initialTable[value];
        }
    }
}